Computer users and software developers desire that a document appears the same on a computer display when viewed using two different applications or successive versions of the same application, unless deliberate development decisions were made to implement differences. For example, a document when viewed under Microsoft Word 6.0 should appear the same as a document when viewed under Word 7.0. Moreover, the desire for continuity is exacerbated in the viewing of a Web page using different browsers. The rapid expansion of the Internet and the World Wide Web has enabled businesses and individuals to host their own Web pages. Using Hypertext Markup Language (HTML), Web page authors design creative ways for presenting information and content on their Web pages. Businesses are especially concerned with the appearance of their Web pages, and desire continuity of the presentation of their web pages among commonly available browsers. In other words, Web pages displayed using Microsoft Internet Explorer and Netscape Navigator should appear the same, except for deliberate implementation differences.
This demand has created new challenges for testing organizations as previous testing techniques are inadequate for comparing rendered screens among multiple applications and for analyzing how well information is displayed by an application. Such previous testing approaches include manual verification, bitmap capture and comparison, and verification of display properties.
A first approach for analyzing computer screens is for a human tester to manually inspect screens rendered on one or more computer displays. In one configuration for comparing the screens rendered by two applications, side-by-side displays are used to simultaneously present the screens. The human tester attempts to spot and note differences between the renderings. This type of testing is tedious, time-consuming and subjective, and even the trained eye of an experienced tester will not always detect subtle differences.
A second approach for comparing the rendered screens of two applications is to bitmap capture a sequence of rendered screens from each application, and then to perform a pixel-by-pixel comparison. As this type of testing analyzes at the bit-level without any understanding of the displayed visual attributes (e.g., characters, boxes, lines), the test results provide little more than an indication that the two bitmaps are different.
A semi-automated approach for testing visual attributes of rendered computer screens is to query an application for the display properties of specific elements. For example, to test a color highlighting feature of a text editor, the keyboard commands for setting a word to the color red would be initiated by a testing program. The testing program would then send a query to the application via a testing interface to ask what color the application is displaying the word. However, this testing approach requires additional functionality built into the application for accepting and performing the query. Furthermore, this method does not test what is actually displayed. Rather, it assumes that if the application says a word is displayed as red, it is in fact displayed as red. Therefore, this approach and the prior approaches do not provide for the automated testing of the visual attributes of rendered computer screens.